package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;


/**
 * 
 * ClassName: AnalysisDRGsReportApplication  
  * Description ： 简版新版分析报告导出-POI技术   
 * Reason: TODO ADD REASON(可选).   
 * date: 2017年11月7日 下午4:37:57  
 * @author ShaozhiYuan
 * @version V1.0 DHC
 */
public interface BZAnalysisDRGsReportApplication {
	/**
	 * @methodname    :getARBenchmarkYear
	 * @description   : 获取标杆年份
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年6月17日
	 */
	public List<Map<String,Object>>  getARBenchmarkYear();
	/**
	 * 获取当前系统库中所有的临床专业
	 * @return
	 */
	public List<Map<String,Object>>  getARBenchSpecCode();
	/**
	 * @methodname    :findDataIsNull
	 * @description   : 判断当前生成报告的时间段内用没有数据
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月21日
	 */
	public int findARDataIsNull(String dataFrom, String dataTo ,String drgVersion,String hospCode);
	/**
	 * 
	 * @methodname    :findNewDrgs
	 * @description   :获取新增病组
	 * @param         :
	 * @author        :liuhongjun
	 * @param benchmarkYear 
	 * @return        :
	 * @date          :2016年8月2日
	 */
	public List<Map<String,Object>>  findARNewDrgs(String dateFrom, String dateTo, String benchmarkYear,String drgVersion,String hospCode);
	 /**
	    * 
	    * @Description :校验数据完整性
	    * @methodname :findCheckedData
	    * @author:ShaoZhiYuan
	    * @return List<Map<String,Object>> 
	    * @date :2017年2月24日
	    */
	public List<Map<String,Object>>  findARCheckedData(String dateFrom,String dateTo,String benchmarkYear ,String drgVersion, String hospCode);
	/**
	 * Description ：获取医院科室总数 
	 * date: 2017年11月8日 下午3:19:20  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public int findARDepCount();
	/**
	 * Description ：获取医院基本信息 表1
	 * date: 2017年11月9日 下午3:17:16  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findARSimpHospBaseQuota(String drgVersion,String dateFrom,String dateTo, String hospCode);
	/**
	 * Description ：获取医院基本信息 表2
	 * date: 2017年11月9日 下午3:17:16  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findSimpHospBaseTableTwo(String dateFrom,String dateTo, String hospCode);
	/**
	 * Description ： 获取医院基本信息 表3
	 * date: 2017年11月9日 下午4:52:49  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findSimpHospBaseTableThree(String drgVersion,String dateFrom,String dateTo,String benchmarkYear, String hospCode);
	/**
	 * Description：获取手术病例
	 * date: 2017年11月10日 上午9:40:48  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public String  findHospCaseOperationCount(Map<String, Object> map);
	/**
	 * 获取手术版本信息
	 * @param map
	 * @return
	 */
	public String  findHospCaseOperationVersion(Map<String, Object> map);
	/**
	 * 获取该手术版本信息下的字典数
	 * @param map
	 * @return
	 */
	public String  findHospCaseOperVersionCnt(Map<String, Object> map);
	/**
	 * 更新手术操作字段
	 * @param paramMap
	 */
	public void updateHospCaseOper(Map<String, Object> paramMap);
	/**
	 * Description ： 获取各级手术病例数
	 * date: 2017年11月10日 上午10:16:45  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findOperCaseByLvel(Map<String, Object> map);
	/**
	 * 
	 * @param 手术种类个数
	 * @return
	 */
	public String  findOperTypeCnt(Map<String, Object> map);
	/**
	 * 
	 * @param 各科室手术的总数
	 * @return
	 */
	public List<Map<String,Object>>  findDepMainOperInfo(Map<String, Object> map);
	/**
	 * 
	 * @param 2.2章节表格7，各科室手术排序
	 * @param i
	 * @return
	 */
	public List<Map<String,Object>>  findtopOperCaseByDep(Map<String, Object> map,String depCode);
	/**
	 * 
	 * @param 获取DRG病组,内科组，外科组，操作组
	 * @return
	 */
	public List<Map<String,Object>>  findHospDRGsInfo(Map<String, Object> map);
	/**
	 * DRG病组和病例复杂程度
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findPersonCnt(Map<String, Object> map);
	/**
	 * 各MDC专业本期和同期出院病例数分布
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findMdcCnt(Map<String, Object> map);
	/**
	 * 科室类型个数
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findDepTypeCnt(Map<String, Object> map);
	/**
	 * 科室总权重，CMI值，时间消耗指数及费用消耗指数
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findOperDepQuota(Map<String, Object> map,String depType,String quotaType);
	/**
	 * 全院低风险组死亡病例科室分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDepByRiskAList(Map<String, Object> map);
	/**
	 * 全院中低风险组死亡病例科室分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDepByRiskBList(Map<String, Object> map);
	/**
	 * 全院MDC覆盖率前五位专业及覆盖率
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findMDCRatioList(Map<String, Object> map);
	/**
	 * DRG低风险组死亡病例科室分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDRGByRiskAList(Map<String, Object> map);
	/**
	 * DRG中低风险组死亡病例科室分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDRGByRiskBList(Map<String, Object> map);
	/**
	 * 表格 8  一二级手术例数最多的前十名医师列表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocOperAList(Map<String, Object> map);
	/**
	 * 表格9三四级手术例数最多的前十名医师列表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocOperBList(Map<String, Object> map);
	/**
	 * 获取重点专科名称及病例数
	 */
	public List<Map<String, Object>> findMdcDescAndCnt(Map<String, Object> map);
	/**
	 * 获取重点专科理论drg组数
	 */
	public int findMdcDRGsCnt(Map<String, Object> paramMap);
	/**
	 * 获取重点专科实际drg组数
	 */
	public int findMdcDRGsRealCnt(Map<String, Object> paramMap);
	/**
	 * 获取重点专科出院病例数排名前十DRGs
	 */
	public List<Map<String, Object>> findDRGsTop10CntByMDC(Map<String, Object> paramMap);
	/**
	 * 获取重点专科总权重排名前十DRGs
	 */
	public List<Map<String, Object>> findDRGsTop10WeightByMDC(Map<String, Object> paramMap);
	/**
	 * 获取医管局考核病组名称
	 */
	public List<Map<String, Object>> findDRGSDesc(Map<String, Object> map);
	/**
	 * 获取分组器版本信息
	 */
	public String  findVersionDesc(Map<String, Object> map);
	/**
	 * 表格12 获取医管局考核病组数据
	 */
	public List<Map<String, Object>> findDRGsQuotaList(Map<String, Object> map,String dateFrom,String dateTo,String drgCode);
	/**
	 * 表格13 获取重点专业缺失DRG
	 */
	public List<Map<String, Object>> findLostDRGsList(Map<String, Object> map);
	/**
	 * 获取时间消耗指数费用消耗指数大于1的个数
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> findoverTimeEffAndFeeEffList(Map<String, Object> map);
	/**
	 * 获取时间消耗指数前五的DRG
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> findoverFiveTimeEffList(Map<String, Object> map);
	/**
	 * 获取费用消耗指数前五的DRG
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> findoverFiveFeeEffList(Map<String, Object> map);
	/**
	 * 获取科室费用消耗指数差值最大的两个DRGs
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> findMaxDFeeEffDRGList(Map<String, Object> map);
	/**
	 * 获取科室费用消耗指数差值最大的两个DRGs的科室次均费用
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> findMaxDFeeEffDRGDepList(Map<String, Object> map,String drgCode);
	/**
	 * 附表1:全院医疗服务综合能力情况表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findHospAbilityList(Map<String, Object> map);
	/**
	 * 附表1:各科室医疗服务综合能力情况表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findAllDepAbilityList(Map<String, Object> map,String dateFrom,String dateTo);
	/**
	 * 附表2:获取所有手术科室
	 */
	public List<Map<String, Object>>  findOperDepList(Map<String, Object> map);
	/**
	 * 附表2:获取手术科室DRGs各项指标
	 */
	public List<Map<String, Object>>  findOperDepDrgsListList(Map<String, Object> map,String depCode);
	/**
	 * 附表3 全院 DRG组数和覆盖率
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findHospallDRGsList(Map<String, Object> map);
	/**
	 * 附表3 各MDC专业DRG病组覆盖情况及医疗服务综合能力情况
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findAllmdcDRGsList(Map<String, Object> map);
	/**
	 * 附表4  住院病例DRG总权重最高的二十位主治医师
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocByWeightList(Map<String, Object> map);
	/**
	 *附表5 CMI值最高的二十位主治医师
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocByCMIList(Map<String, Object> map);
	/**
	 *附表6 未入组病例覆盖的所有主要诊断
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findOldNotInGroupDiagList(Map<String, Object> map);
	/**
	 *附表8 内科组/外科组/操作组病组明细
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDRGTypeCntList(Map<String, Object> map);
	/**
	 *附表9 死亡病例明细
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDeadCntList(Map<String, Object> map);
	
	
}
